/*
 * ProjetoPSA - Plano de Substituição de Aulas
 *    Copyright (C) 2010  Marcelo e Cicero
 *
 *    This program is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projetoPSA.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import projetoPSA.pojos.*;

/**
 *
 * @author Marcelo e Cicero
 */
public class HibernateUtils {

    private static AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
    private static SessionFactory factory;

    static {
        mapear();
    }

    public static void criarTabelas() {
        new SchemaExport(annotationConfiguration).create(true, true);
    }

    public static void addClass(Class classe) {
        annotationConfiguration.addAnnotatedClass(classe);
    }

    public static void excluirTabelas() {
        new SchemaExport(annotationConfiguration).drop(true, true);
    }

    public static void mapear() {
        addClass(Coordenador.class);
        addClass(Curso.class);
        addClass(DiaSemana.class);
        addClass(Disciplina.class);
        addClass(Grade.class);
        addClass(Horario.class);
        addClass(Professor.class);
        addClass(Sala.class);
        addClass(Substituicao.class);
        addClass(Turma.class);
    }



    public static Session getCurrentSessao(){
        factory = annotationConfiguration.buildSessionFactory();

        return factory.getCurrentSession();
    }
    public static Session getSessao(){
        factory = annotationConfiguration.buildSessionFactory();
        return factory.openSession();
    }

}
